home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 8 / QRZ Ham Radio Callsign Database - Volume 8.iso / mac / files / t_sys5 / 92052tar.gz / 920528.tar / files.c < prev    next >
C/C++ Source or Header  |  1992-05-14  |  7KB  |  173 lines

  1. /* @(#) $Header: files.c,v 1.8 92/05/14 13:19:56 deyke Exp $ */
  2.  
  3. /* System-dependent definitions of various files, spool directories, etc */
  4. #include <stdio.h>
  5. #include "global.h"
  6. #include "netuser.h"
  7. #include "files.h"
  8.  
  9. #ifdef  MSDOS
  10. char *Startup = "/autoexec.net";        /* Initialization file */
  11. char *Userfile = "/ftpusers";   /* Authorized FTP users and passwords */
  12. char *Maillog = "/spool/mail.log";      /* mail log */
  13. char *Mailspool = "/spool/mail";        /* Incoming mail */
  14. char *Mailqdir = "/spool/mqueue";               /* Outgoing mail spool */
  15. char *Mailqueue = "/spool/mqueue/*.wrk";        /* Outgoing mail work files */
  16. char *Routeqdir = "/spool/rqueue";              /* queue for router */
  17. char *Alias = "/alias";         /* the alias file */
  18. char *Dfile = "/domain.txt";    /* Domain cache */
  19. char *Fdir = "/finger";         /* Finger info directory */
  20. char *Arealist = "/spool/areas";/* List of message areas */
  21. char *Helpdir = "/spool/help";  /* Mailbox help file directory */
  22. char *Rewritefile = "/spool/rewrite"; /* Address rewrite file */
  23. char *Newsdir = "/spool/news";          /* News messages and NNTP data */
  24. char *Popusers = "/popusers";           /* POP user and passwd file */
  25. char *Signature = "/spool/signatur"; /* Mail signature file directory */
  26. char *Forwardfile = "/spool/forward.bbs"; /* Mail forwarding file */
  27. char *Historyfile = "/spool/history"; /* Message ID history file */
  28. char *Tmpdir = "/tmp";
  29. char Eol[] = "\r\n";
  30. #define SEPARATOR       "/"
  31. #endif
  32.  
  33. #ifdef  UNIX
  34. char *Startup = "/tcp/net.rc";          /* Initialization file */
  35. char *Config = "./config.net";  /* Device configuration list */
  36. char *Userfile = "./ftpusers";
  37. char *Mailspool = "./mail";
  38. char *Maillog = "./mail.log";   /* mail log */
  39. char *Mailqdir = "./mqueue";
  40. char *Mailqueue = "./mqueue/*.wrk";
  41. char *Routeqdir = "./rqueue";           /* queue for router */
  42. char *Alias = "./alias";        /* the alias file */
  43. char *Dfile = "./domain.txt";   /* Domain cache */
  44. char *Fdir = "./finger";                /* Finger info directory */
  45. char *Arealist = "./areas";             /* List of message areas */
  46. char *Helpdir = "./help";       /* Mailbox help file directory */
  47. char *Rewritefile = "./rewrite"; /* Address rewrite file */
  48. char *Newsdir = "./news";               /* News messages and NNTP data */
  49. char *Popusers = "./popusers";          /* POP user and passwd file */
  50. char *Signature = "./signatur"; /* Mail signature file directory */
  51. char *Forwardfile = "./forward.bbs"; /* Mail forwarding file */
  52. char *Historyfile = "./history"; /* Message ID history file */
  53. char *Tmpdir = "/tmp";
  54. #define SEPARATOR       "/"
  55. char Eol[] = "\n";
  56. #endif
  57.  
  58. #ifdef  AMIGA
  59. char *Startup = "TCPIP:net-startup";
  60. char *Config = "TCPIP:config.net";      /* Device configuration list */
  61. char *Userfile = "TCPIP:ftpusers";
  62. char *Mailspool = "TCPIP:spool/mail";
  63. char *Maillog = "TCPIP:spool/mail.log";
  64. char *Mailqdir = "TCPIP:spool/mqueue";
  65. char *Mailqueue = "TCPIP:spool/mqueue/#?.wrk";
  66. char *Routeqdir = "TCPIP:spool/rqueue";         /* queue for router */
  67. char *Alias = "TCPIP:alias";    /* the alias file */
  68. char *Dfile = "TCPIP:domain.txt";       /* Domain cache */
  69. char *Fdir = "TCPIP:finger";            /* Finger info directory */
  70. char *Arealist = "TCPIP:spool/areas";   /* List of message areas */
  71. char *Helpdir = "TCPIP:spool/help";     /* Mailbox help file directory */
  72. char *Rewritefile = "TCPIP:spool/rewrite"; /* Address rewrite file */
  73. char *Newsdir = "TCPIP:spool/news";     /* News messages and NNTP data */
  74. char *Popusers = "TCPIP:/popusers";     /* POP user and passwd file */
  75. char *Signature = "TCPIP:spool/signatur"; /* Mail signature file directory */
  76. char *Forwardfile = "TCPIP:spool/forward.bbs"; /* Mail forwarding file */
  77. char *Historyfile = "TCPIP:spool/history"; /* Message ID history file */
  78. char *Tmpdir = "TCPIP:tmp";
  79. #define SEPARATOR       "/"
  80. char Eol[] = "\r\n";
  81. #endif
  82.  
  83. #ifdef  MAC
  84. char *Startup ="Mikes Hard Disk:net.start";
  85. char *Config = "Mikes Hard Disk:config.net";    /* Device configuration list */
  86. char *Userfile = "Mikes Hard Disk:ftpusers";
  87. char *Mailspool = "Mikes Hard Disk:spool:mail:";
  88. char *Maillog = "Mikes Hard Disk:spool:mail.log:";
  89. char *Mailqdir = "Mikes Hard Disk:spool:mqueue:";
  90. char *Mailqueue = "Mikes Hard Disk:spool:mqueue:*.wrk";
  91. char *Routeqdir = "Mikes Hard Disk:spool/rqueue:";      /* queue for router */
  92. char *Alias = "Mikes Hard Disk:alias";  /* the alias file */
  93. char *Dfile = "Mikes Hard Disk:domain:txt";     /* Domain cache */
  94. char *Fdir = "Mikes Hard Disk:finger";          /* Finger info directory */
  95. char *Arealist = "Mikes Hard Disk:spool/areas"; /* List of message areas */
  96. char *Helpdir = "Mikes Hard Disk:spool/help"; /* Mailbox help file directory */
  97. char *Rewritefile = "Mikes Hard Disk:spool/rewrite"; /* Address rewrite file */
  98. char *Newsdir = "Mikes Hard Disk:spool/news"; /* News messages and NNTP data */
  99. char *Popusers = "Mikes Hard Disk:/popusers";   /* POP user and passwd file */
  100. char *Signature = "Mikes Hard Disk:spool/signatur"; /* Mail signature file directory */
  101. char *Forwardfile = "Mikes Hard Disk:spool/forward.bbs"; /* Mail forwarding file */
  102. char *Historyfile = "Mikes Hard Disk:spool/history"; /* Message ID history file */
  103. char *Tmpdir = "Mikes Hard Disk:tmp";
  104. #define SEPARATOR       "/"
  105. char Eol[] = "\r";
  106. #endif
  107.  
  108. static char *rootdir = "";
  109.  
  110. /* Establish a root directory other than the default. Can only be called
  111.  * once, at startup time
  112.  */
  113. void
  114. initroot(root)
  115. char *root;
  116. {
  117.     rootdir = strdup( root );
  118.  
  119.     Startup = rootdircat(Startup);
  120.     Userfile = rootdircat(Userfile);
  121.     Maillog = rootdircat(Maillog);
  122.     Mailspool = rootdircat(Mailspool);
  123.     Mailqdir = rootdircat(Mailqdir);
  124.     Mailqueue = rootdircat(Mailqueue);
  125.     Routeqdir = rootdircat(Routeqdir);
  126.     Alias = rootdircat(Alias);
  127.     Dfile = rootdircat(Dfile);
  128.     Fdir = rootdircat(Fdir);
  129.     Arealist = rootdircat(Arealist);
  130.     Helpdir = rootdircat(Helpdir);
  131.     Rewritefile = rootdircat(Rewritefile);
  132.     Newsdir = rootdircat(Newsdir);
  133.     Signature = rootdircat(Signature);
  134.     Forwardfile = rootdircat(Forwardfile);
  135.     Historyfile = rootdircat(Historyfile);
  136. }
  137.  
  138. /* Concatenate root, separator and arg strings into a malloc'ed output
  139.  * buffer, then remove repeated occurrences of the separator char
  140.  */
  141. char *
  142. rootdircat(filename)
  143. char *filename;
  144. {
  145.     char *out = filename;
  146.  
  147.     if ( strlen(rootdir) > 0 ) {
  148.         char *separator = SEPARATOR;
  149.  
  150.         out = mallocw( strlen(rootdir)
  151.                 + strlen(separator)
  152.                 + strlen(filename) + 1);
  153.  
  154.         strcpy(out,rootdir);
  155.         strcat(out,separator);
  156.         strcat(out,filename);
  157.         if(*separator != '\0'){
  158.             char *p1, *p2;
  159.  
  160.             /* Remove any repeated occurrences */
  161.             p1 = p2 = out;
  162.             while(*p2 != '\0'){
  163.                 *p1++ = *p2++;
  164.                 while(p2[0] == p2[-1] && p2[0] == *separator)
  165.                     p2++;
  166.             }
  167.             *p1 = '\0';
  168.         }
  169.     }
  170.     return out;
  171. }
  172.  
  173.